﻿#pragma once

#include "CrazyManworm.h"
#include "../../MirDatabase/MonsterInfo.h"
#include "../PlayerObject.h"
#include "../../../Shared/Enums.h"
#include "../MonsterObject.h"
#include "../../MirEnvir/Map.h"
#include <vector>

using namespace Server::MirDatabase;
using namespace Server::MirEnvir;
namespace S = ServerPackets;

namespace Server::MirObjects::Monsters
{
    class MutatedManworm : public CrazyManworm
    {
    public:
        int AttackRange = 5;

    protected:
        MutatedManworm(MonsterInfo *info);

    public:
        int Attacked(PlayerObject *attacker, int damage, DefenceType type = DefenceType::ACAgility, bool damageWeapon = true) override;

        int Attacked(MonsterObject *attacker, int damage, DefenceType type = DefenceType::ACAgility) override;

    private:
        void TeleportToWeakerTarget();

    public:
        bool TeleportRandom(int attempts, int distance, Map *temp = nullptr) override;
    };
}
